The Internet is an international collection of interconnected networks of computer systems. The World Wide Web is a portion of the Internet that allows a user of one computer system to access electronic documents or pages that are stored on another computer system. The World Wide Web also may be referred to as the WWW, web, or W3, and the accessible electronic pages may be referred to as web pages or, more simply, pages. Often a web page includes text, graphics, sounds other types of multimedia information, and data fields. A web page also may include links, called hyperlinks, to files and documents accessible on other web pages. The computer systems on which the accessible web pages are stored may be referred to as web sites or web servers.
Computer system users can access, download and display web pages from web sites using a graphical user interface (GUI) produced by executing client software called a browser application. A browser application also may be referred to as a web browser or simply, a browser. Examples of commercially available web browsers include Netscape® available from AOL/Netscape Communications of Mountain View, Calif.; Internet Explorer™ available from Microsoft Corporation of Redmond, Wash.; and Safari available from Apple Computer of Cuppertino, Calif. Web browsers may use a variety of protocols for accessing and communicating with web sites. One example of such a protocol is the HyperText Transfer Protocol (HTTP).
To access a web page at a web server, a user enters the address associated with the web page in the web browser. The web browser retrieves the web page for display on the user's computer system by submitting a request for a web page to a web server. The web server retrieves a static page or creates a dynamic page for transfer to the web browser. The web browser receives and displays the web page on the user's computer system. A computer system user may use navigation buttons in the web browser to control the display of web pages. Typically, a web browser includes “back” and “forward” navigation buttons that enable a user of the web browser to navigate through a sequence of web pages. A computer system user also may use a hyperlink to display a web page or a button to execute a computer program on the web server that is used to create and transmit a web page for display by the web browser.
A web application is a computer program running on a web server. Some web applications are capable of dynamically building web pages upon receiving requests from a web browser. A web browser running on the client system displays the web pages created by the web application. The web application creates the web pages based on the request and an internal state or condition of the web application at the time that the web page is created. The process of creating a web page may change the internal state of the web application.
One challenge facing developers of web applications is in creating a web application in which a user is able to navigate through a series of dynamically generated web pages. This is generally not a problem when a user navigates forward through linked web pages or uses hyperlinks to navigate to a specified web page. However, under some conditions, the web application may fail to return a web page or may return a web page that is different than the user was expecting. This may be because a dynamically generated web page is generated based on the internal state of the web application at the time the web page is generated. If the internal state of the web application is different, an action on a web page may produce different results, which may surprise or frustrate a user.
In one example, a user may navigate back to a previously viewed web page and then navigate forward following the same sequence of actions that the user previously performed. In such a case, the user typically expects to see the same web pages that the user previously viewed when following the same navigation path. However, if the internal state of the web application has changed from what the internal state was when the user first traversed the navigation path, different web pages may be displayed in the user's subsequent traversal of the same navigation path. By way of example, when a user of the web browser uses the web browser's “back” button to go back to a web page that was generated based on an earlier search request, the same search request is resubmitted to the web application. The user typically expects the web page returned in response to the resubmission of the search request to be exactly the same as the web page that was returned and viewed as a result of the first search request. However, the web page created by the web application in response to the resubmission of the search request may be different because the internal state of the web application at the time of the resubmission was different than the internal state of the web application at the time that the first search was submitted.
One approach to managing application state information is to store, on a web server, state data in association with a reference handle. The application state information is stored and retrieved in response to a web server request.